<?php
class File {
	
	/**
	 * 创建目录
	 * 
	 * 支持创建多级目录，目录权限为777，并在目录下生成名为index.html的空文件
	 * @param string $path 路径
	 * @return boolean 成功返回true,目录已存在或不合法返回false
	 */
	public static function makeDir($path) {
		if ( is_dir($path) || strpos($path, '..') !== false ) return false;
		$dirs = explode('/', str_replace(ROOT, '', $path));
		$path = ROOT;
		foreach ($dirs as $dir) {
			$path .= $dir;
			if ( !is_dir($path) ) {
				@mkdir($path);
				@fopen($path.'/index.html','wb');
				@chmod($path, 0777);
			}
			$path .= DIRECTORY_SEPARATOR;
		}
		return true;
	}

	/**
	 * 递归删除整个目录
	 * 
	 * @param string $path 要删除的目录
	 * @return void
	 */
	public static function removeDir($path) {
		$path = rtrim($path, '/');
		if ( $handle = opendir($path) ) {
			while ( false !== ($d = readdir($handle)) ) {
				if ( $d != '.' && $d != '..' ) {
					if ( is_dir($path.'/'.$d) ) {
						self::removeDir($path.'/'.$d);
					} else {
						@unlink($path.'/'.$d);
					}
				}
			}
			closedir($handle);
			@rmdir($path);
		}
	}
	
	/**
	 * 数据大小单位转换
	 */
	public static function sizeFormat($byte) {
		$s = array('Byte', 'KByte', 'MByte', 'GByte', 'TByte');
		$i = 0;
		while ($byte > 1024) {
			$byte /= 1024;
			$i ++;
		}
		return round($byte, 2).$s[$i];
	}
}